using System;
using System.Collections.Generic;

using PMServiceDesk.DataType;
using PMServiceDesk.DataAccess;

namespace PMServiceDesk.BusinessLogic
{
    public class RolLogic
    {
        #region Variables

        private RolData _rolData;

        #endregion

        #region Constructores

        public RolLogic()
        {
            _rolData = new RolData();
        }

        #endregion

        #region Metodos

        public RolType CargarPorId(string id)
        {
            _rolData.FiltrarPorId(id);

            return _rolData.Cargar();
        }

        public RolType CargarPorNombreProyecto(string proyectoId,string nombre)
        {
            _rolData.FiltrarPorProyectoId(proyectoId);
            _rolData.FiltrarPorNombre(nombre);

            return _rolData.Cargar();
        }

        public void Grabar(RolType rol)
        {
            _rolData.Grabar(rol);
        }

        public List<RolType> CargarExplorador(string proyectoId)
        {
            if(proyectoId != "") _rolData.FiltrarPorProyectoId(proyectoId);

            return _rolData.CargarListaVista();
        }

        public List<RolType> CargarExploradorPaginado(RolType registroBusqueda, int paginaActual = 0, int cantidadMostrar = 0, string orderBy = "")
        {
            _rolData.FiltrarPorProyectoId(registroBusqueda.ProyectoId);
            if (registroBusqueda.Nombre != "") _rolData.FiltrarPorNombre(registroBusqueda.Nombre);
            if (registroBusqueda.Descripcion != "") _rolData.FiltrarPorDescripcion(registroBusqueda.Descripcion);

            return _rolData.CargarListaVista(paginaActual,cantidadMostrar,orderBy);
        }

        #endregion
    }
}
